package com.stgy.lease.web.admin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.stgy.lease.model.domain.RoomInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.stgy.lease.web.admin.dto.RoomInfoSearchDto;
import com.stgy.lease.web.admin.dto.RoomInfoSubmitDto;
import com.stgy.lease.web.admin.vo.RoomDetailVo;
import com.stgy.lease.web.admin.vo.RoomItemVo;
import io.minio.errors.*;

import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.List;

/**
 * @author lingx
 * @description 针对表【room_info(房间信息表)】的数据库操作Service
 * @createDate 2024-08-28 11:00:29
 */
public interface RoomInfoService extends IService<RoomInfo> {

    //新增或更新房间信息
    boolean saveOrUpdateRoomInfoSubmitDto(RoomInfoSubmitDto roomInfoSubmitDto) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException;

    //条件查询房间分页列表
    Page<RoomItemVo> pageItem(RoomInfoSearchDto roomInfoSearchDto);

    //根据id删除房间额外信息
    boolean deleteRoomExtra(Long id);

    //根据id删除房间
    boolean removeRoomInfoById(Long id);

    //根据id修改房间状态
    boolean updateReleaseStatusById(Long id, Integer status);

    //根据id获取房间详细信息
    RoomDetailVo getDetailById(Long id);

    //根据公寓id查询房间列表
    List<RoomInfo> listBasicByApartmentId(Long id);
}
